package com.xingkeduo.remote.feign;

import com.alibaba.fastjson.JSONObject;
import com.xingkeduo.dto.*;
import com.xingkeduo.dto.transter.shop.ShopsDTO;
import com.xingkeduo.dto.transter.shop.ShopsIdAndNameDto;
import com.xingkeduo.util.config.FeignConfig;
import com.xingkeduo.util.pojo.domain.Page;
import com.xingkeduo.utils.ResponseUtils;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

@FeignClient(value = "business-operation", configuration = FeignConfig.class)
public interface StoreFeignService {


	 /**
     * 查询店铺列表 -- 小程序  pantong
     * @param f_user_id 用户ID
     * @param mobile_type
     * @return
     */
    @RequestMapping("/api/op/shops/list_transfer")
    String list_transfer(@RequestParam(value = "f_user_id")Long f_user_id, @RequestParam(value = "longitude")Double longitude, @RequestParam(value = "latitude")Double latitude, @RequestParam(value = "status")Long status, @RequestParam(value = "offset")int offset, @RequestParam(value = "is_first")int is_first, @RequestParam(value = "mobile_type")String mobile_type);

    /**
     * 查询店铺详情 -- 小程序  pantong
     * @param f_user_id 用户ID
     * @param time
     * @param token
     * @param mobile_type 
     * @return
     */
    @RequestMapping("/api/op/shops/detail_transfer")
    String detail_transfer(@RequestParam(value = "f_user_id")long f_user_id, @RequestParam(value = "longitude")Double longitude, @RequestParam(value = "latitude")Double latitude, @RequestParam(value = "store_id")Long store_id, @RequestParam(value = "time")String time, @RequestParam(value = "token")String token, @RequestParam(value = "mobile_type")String mobile_type);

    //查询店铺信息
    @RequestMapping("/api/op/shops/getShopsDetales")
    ResponseUtils<ShopsDTO> doGet(@RequestParam(value = "id") Long id);



    //查询所有发型
    @RequestMapping("/api/op/hairstyle/lists/{urlParam}")
    ResponseUtils<List<HairstyleResponseDTO>> doGetLists(@PathVariable("urlParam") @RequestParam(value = "urlParam") String urlParam);


    //查询发型详情
    @RequestMapping("/api/op/hairstyle/{urlParam}")
    ResponseUtils<HairstyleResponseDTO> doGetListsInfo(@PathVariable("urlParam") @RequestParam(value = "urlParam") String urlParam);



    //查询发型精选列表
    @RequestMapping("/api/op/hairstyle/hairstyleLists/{urlParam}")
    ResponseUtils<Page<HairstyleTableDTO>> doGetHairLists(@PathVariable("urlParam") @RequestParam(value = "urlParam") String urlParam);


    //查询发型详情
    @RequestMapping("/api/op/hairstyle/{urlParam}")
    ResponseUtils<HairstyleDetailResponseDTO> doGetHairstyleDetail(@PathVariable("urlParam") @RequestParam(value = "urlParam") String urlParam);


    //查询barber发型详情
    @RequestMapping("/api/op/hairstyle/hairstyleList")
    ResponseUtils<List<ChooseHairstyleDTO>> hairstyleList(@RequestParam(value = "servprodIds") String servprodIds);

    //根据门店id 查询barber 价格
    @RequestMapping("/api/op/shopsServprod/getBarberPrice")
    ResponseUtils<List<JSONObject>> getBarberPrice(@RequestParam(value = "shopsId") String shopsId);



    //查询店铺营业时间
    @RequestMapping("/api/op/shopsDays/getShopDayDetail")
    ResponseUtils<List<ShopsDaysTable>> doGetShopServprodDetail(@RequestParam(value = "shopsId") Long shopsId);


    //获取服务类型
    @GetMapping(value = "/api/op/servprod/getServprodDetail")
    ResponseUtils<ServprodTable> getServprod(@RequestParam(value = "id") Long id);

    //根据状态查店铺
    @GetMapping(value = "/api/op/shops/getShopsList")
    ResponseUtils<List<ShopsIdAndNameDto>> getShopsList(@RequestParam(value = "statusList") Integer[] statusList);

    //根据经纬度获取最近店铺信息
    @GetMapping(value = "/api/op/shops/getLongitudeAndLatitudeShopInfo")
    ResponseUtils<SeeShopIdVo> getLongitudeAndLatitudeShopInfo(@RequestParam(value = "latitude")Double latitude , @RequestParam(value = "longitude")Double longitude,@RequestParam(value = "userId")Long userId);


}